The present invention is related to a storage system and a storage device system that are capable of executing a remote copying operation between, for example, different sorts of a main storage device system and a sub-storage device system.
For instance, in basic business-purpose database systems of the type that are capable of handling large storage capacities of data, the data is managed by employing storage device systems which are independently arranged with respect to host computers. This storage device system is also referred to as a “disk array apparatus”, which disk array apparatus is constituted by arranging a large number of disk storage devices in the form of an array. A storage device system is configured on the basis, for example, of RAID (Redundant Array of Independent Inexpensive Disks) technology. On a physical storage area owned by a storage device system, a logical volume corresponding to a virtual storage area Is formed. A business-purpose application program, that is operable on a host computer, can read or write desirable data by issuing either a write command having a predetermined format or a read command having a predetermined format to a storage device system.
For example, a description will be made of a case in which data is written. In this example, the result of a data operation by a host computer has been temporarily stored in a buffer of the host computer. When a series of data operations by the host computer is accomplished and the job is ended (commitment in unit of transaction), the host computer transmits a data writing request (write command) to a storage device system in order to update the database. This writing request contains one or more pieces (normally, a large number) of data which are to be written into the storage device system. Upon receipt of the data writing request from the host computer, the storage device system stores the data contained in this writing request into a cache memory. After addresses of the data stored in the cache memory are converted, the address-converted data is stored into a predetermined area of a preselected disk device. When the data which is required to be written has been stored in the predetermined area, the storage device system reports a writing operation completion to the host computer.
In this case, the storage device system can maintain the security of the data by causing the data to be distributed into a plurality of disk storage devices so as to increase the redundancy. Furthermore, the storage device system may execute a remote copying operation in which the same data is copied and held in storage device systems installed at physically separated remote places in order to take precautions against a disaster, such as an earthquake. In a remote copying operation, while a plurality of storage device systems, which are located under physically separated conditions, are connected via either a private line or a public line to each other, data is directly copied among the respective storage device systems without involving a host computer. As a consequence, a main logical volume formed in a copy-source storage device system (to be referred to as “local-sided storage device system” hereinafter) corresponds to a sub-logical volume formed in a copy-destination storage device system (to be referred to as “remote-sided storage device system” hereinafter) in an one-to-one corresponding relationship, and these main and sub-logical volumes hold data having the same contents relative to each other. Accordingly, even in a case in which either all of the data or partial data of the local-sided storage device system is lost due to a disaster and the like, the host computer can execute a data processing operation by employing the data of the sub-logical volume of the remote-sided storage device system. It should be understood that a storage device system is designed in such a manner that a data backup operation is carried out in either a periodic manner or an irregular manner in addition to a remote copying operation, and, thus, the storage device system can restore the data up to a predetermined point in time based upon both backup data and journal data.
Remote copying operations may be mainly classified-as a synchronous type remote copying operation and an asynchronous type remote copying operation. In the case of a synchronous type remote copying operation, when a data writing request issued from a host computer is transmitted to a local-sided storage device system, the local-sided storage device system stores the received data (namely, data which is required to be written) into a cache memory, and, thereafter, it transfers the data via a communication line to a remote-sided storage device system. When the remote-sided storage device system receives the data and stores the received data into a cache memory, the remote-sided storage device system transmits a response signal indicative of the data reception to the local-sided storage device system. When the local-sided storage device system receives the response signal from the remote-sided storage device system, the local-sided storage device system communicates a writing operation completion report that the data writing operation has been carried out under a normal condition to the host computer.
As explained above, in the synchronous type remote copying operation, both the data writing request issued from the host computer and the data transfer operation to the remote-sided storage device system are carried out in a synchronous manner. As a consequence, since such a delay time is produced, which is caused when the local-sided storage device system waits for the response sent from the remote-sided storage system in the synchronous type remote copying operation, this synchronous type remote copying operation is suitable for a case in which the distance between the local-sided storage device system and the remote-sided storage device system is a relatively short distance. Conversely, in a case in which the distance between a local-sided storage device system and a remote-sided storage device system is a long distance, generally speaking, the synchronous type remote copying operation is not suitable for use because of a delay response problem and a delay transfer problem.
On the other hand, in the case of an asynchronous type remote copying operation, when the local-sided storage device system receives a data writing request from the host computer, the local-sided storage device system stores the received data into the cache memory, and then it immediately communicates a writing operation completion report to the host computer. After the local-sided storage system sends the writing operation completion report to the host computer, this local-sided storage device system transfers the data to the remote-sided storage device system. In other words, the writing operation completion report to the host computer and the data transfer operation to the remote-sided storage device system are carried out in an asynchronous manner. As a consequence, in the case of an asynchronous type remote copying operation, the writing operation completion report can be quickly transmitted to the host computer irrespective of the distances between the respective storage device systems. Accordingly, this asynchronous type remote copying operation is suitable for a case in which the distance between the respective storage device systems is a relatively long distance. Conversely, since the data transfer operation to the remote storage device system has not yet been carried out at a time when the writing operation completion report to the host computer is carried out, it is not guaranteed that the storage content of the main logical volume is identical to the storage content of the sub-logical volume even when the writing operation completion report is sent.
On the other hand, as one technique that is capable of improving the reliability of a storage device system, the storage device system can correctly store data in accordance with a data writing request made by a host computer and also can correctly read data in accordance with a data reading request made by the host computer. To this end, the storage device system employs such techniques, for example, as LRC (Longitudinal Redundancy Check), CRS (Cyclic Redundancy Check), and ECC (Error-Correcting Code) in order to prevent bit errors that tend to occur during a data transfer operation. However, since a plurality of disk storage devices are operated in a parallel mode so as to input/output data in the storage-device system, a predetermined address converting operation is carried out and the data is subdivided, and then the subdivided data is processed. As a result, it is difficult in practice to properly process abnormal addresses of subdivided data. As a consequence, such a guarantee technique has been proposed (refer to JP-A-2000-347815). That is, when a guarantee code, such as a transfer source address that is capable of specifying data to be transferred, is added to the data, a guarantee can be made as to whether or not the data can be correctly transferred within the storage device system.
In the above-described conventional technique, since the guarantee is made as to whether or not the data transfer operation has been correctly carried out within the storage device system by adding a guarantee code to the data, if a storage system is operable by employing a single storage device system, then the data guaranteeing operation may be sufficiently carried out. However, under a so-called “hetero-environment” in which different sorts of storage device systems are mixed with each other, there are many possibilities that the data guaranteeing systems are different from each other between the respective storage device systems, and also, even when similar data guaranteeing systems are employed, the detailed structures of the data guarantee codes and the detailed verifying methods employed are different from each other. As a consequence, it is difficult in practice to guarantee as to whether or not data which has been transferred from a certain storage device system to another storage device system is correctly stored, or it is difficult to guarantee as to whether or not data which has been read from a certain storage device system to another storage device system corresponds to correct data. In this connection, the above-described hetero-environment implies, for instance, an environment in which plural sorts of storage device systems whose suppliers are different from each other are mixed with each other. For example, this hetero-environment implies a storage environment in which, although basic functions related to data input/output operations of different sorts of storage device systems are commonly used in these storage device systems, the peripheral support functions thereof, such as the guarantee functions during data transfer operations, are different from each other, and these different sorts of storage device systems are mutually connected so as to be operated together in a system.
In a case in which a single storage system is configured only by a plurality of storage device systems which are provided by the same supplier, the above-explained error correcting technique above, such as LRC, is sufficient as a bit error preventing technique, and also, no consideration has been made as to whether or not the data transferred between the respective storage device systems is correctly stored, and whether or not the data transferred between the respective storage device systems corresponds to correctly read data. Also, since the supplier is familiar with the internal constructions of the respective storage systems, even in a case in which the versions and processing performance of the respective storage device systems are different from each other, the data transferred between the respective storage device systems may be guaranteed in a relatively simple manner, if necessary.
However, under the hetero-environment in which plural sorts of storage device systems whose suppliers are different from each other are mixed with each other, it is difficult to guarantee as to whether or not the data transferred between the storage device systems of the respective suppliers corresponds to the correct data, except for a case in which the respective different suppliers employ the same data guarantee system. The reason for this is given as follows: That is, a data guarantee system which is employed by a certain supplier cannot be directly applied to another storage device system supplied by another supplier. Also, the internal structure of a storage device system which is supplied by another supplier cannot be freely altered. As a consequence, under a hetero-environment the reliability of the data which is transferred among the storage device systems whose technical specifications and performance are different from each other cannot be sufficiently secured, and, therefore, improvements in the data reliability are required.